package logica;

import java.io.Serializable;
import javax.persistence.*;
import java.util.Calendar;


/**
 * The persistent class for the ITEMPAGO database table.
 * 
 */
@Entity
@Table(name="ITEMPAGO")
@NamedQuery(name="Itempago.findAll", query="SELECT i FROM Itempago i")
public class Itempago implements Serializable {
	private static final long serialVersionUID = 1L;
	private int idItempago;
	private Calendar fechacobro;
	private String nrocheque;
	private String nrotarjeta;
	private String plaza;
	private double subimporte;
	private Banco banco;
	private Moneda moneda;
	private Tarjetascredito tarjetascredito;
	private Tarjetasdebito tarjetasdebito;
	private Mediopago mediopago;
	private Pago pago;
	private double cotizacion;

	public Itempago() {
	}


	@Id
	@SequenceGenerator(name="ITEMPAGO_IDITEMPAGO_GENERATOR", sequenceName="SECUENCIA")
	@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="ITEMPAGO_IDITEMPAGO_GENERATOR")
	@Column(name="ID_ITEMPAGO", unique=true, nullable=false, precision=38)
	public int getIdItempago() {
		return this.idItempago;
	}

	public void setIdItempago(int idItempago) {
		this.idItempago = idItempago;
	}


	@Temporal(TemporalType.DATE)
	public Calendar getFechacobro() {
		return this.fechacobro;
	}

	public void setFechacobro(Calendar fechacobro) {
		this.fechacobro = fechacobro;
	}


	@Column(length=50)
	public String getNrocheque() {
		return this.nrocheque;
	}

	public void setNrocheque(String nrocheque) {
		this.nrocheque = nrocheque;
	}


	@Column(length=16)
	public String getNrotarjeta() {
		return this.nrotarjeta;
	}

	public void setNrotarjeta(String nrotarjeta) {
		this.nrotarjeta = nrotarjeta;
	}


	@Column(length=50)
	public String getPlaza() {
		return this.plaza;
	}

	public void setPlaza(String plaza) {
		this.plaza = plaza;
	}


	@Column(nullable=false, precision=126)
	public double getSubimporte() {
		return this.subimporte;
	}

	public void setSubimporte(double subimporte) {
		this.subimporte = subimporte;
	}


	//uni-directional one-to-one association to Banco
	@OneToOne(fetch=FetchType.LAZY)
	@JoinColumn(name="ID_BANCO")
	public Banco getBanco() {
		return this.banco;
	}

	public void setBanco(Banco banco) {
		this.banco = banco;
	}


	//uni-directional one-to-one association to Moneda
	@OneToOne(fetch=FetchType.LAZY)
	@JoinColumn(name="ID_MONEDA")
	public Moneda getMoneda() {
		return this.moneda;
	}

	public void setMoneda(Moneda moneda) {
		this.moneda = moneda;
	}


	//uni-directional one-to-one association to Tarjetascredito
	@OneToOne(fetch=FetchType.LAZY)
	@JoinColumn(name="ID_TARJETACREDITO")
	public Tarjetascredito getTarjetascredito() {
		return this.tarjetascredito;
	}

	public void setTarjetascredito(Tarjetascredito tarjetascredito) {
		this.tarjetascredito = tarjetascredito;
	}


	//uni-directional one-to-one association to Tarjetasdebito
	@OneToOne(fetch=FetchType.LAZY)
	@JoinColumn(name="ID_TARJETADEBITO")
	public Tarjetasdebito getTarjetasdebito() {
		return this.tarjetasdebito;
	}

	public void setTarjetasdebito(Tarjetasdebito tarjetasdebito) {
		this.tarjetasdebito = tarjetasdebito;
	}
	
	@ManyToOne
	@JoinColumn(name="ID_MEDIO", nullable=false)
	public Mediopago getMedioPago(){
		return this.mediopago;
	}
	public void setMedioPago(Mediopago mediopago){
		this.mediopago=mediopago;
	}
	
	@ManyToOne
	@JoinColumn(name="ID_PAGO", nullable=false)
	public Pago getPago(){
		return this.pago;
	}
	public void setPago(Pago pago){
		this.pago=pago;
	}

	@OneToOne(fetch=FetchType.LAZY)
	@JoinColumn(name="ID_MEDIO")
	public Mediopago getMediopago() {
		return mediopago;
	}


	public void setMediopago(Mediopago mediopago) {
		this.mediopago = mediopago;
	}

	@Column(nullable=false, precision=126)
	public double getCotizacion() {
		return cotizacion;
	}


	public void setCotizacion(double cotizacion) {
		this.cotizacion = cotizacion;
	}

}